<!---- Creator: Eoly -->
<!---- On 2017/1/10 -->
<!---- Call http://palerock.cn -->

<!--
    获取用户余额API：
    method:GET
    url:'http://palerock.cn/h5_back/user/show-balance'

    请求头:
    Authorization:'Bearer '+token 密文记录

    data:
    {                           // 发送json参数
        无
    }
    返回：
    {
        data:       // 返回的登录用户对象简单属性
            {
                userId:用户id
                userBalance:用户余额
            }

        error:      // '0'则为操作成功

        mes:        // 操作后返回的信息
    }
-->

<!--
    管理员充值用户余额API：
    method:POST
    url:'http://palerock.cn/h5_back/user/recharge-balance'

    请求头:
    Authorization:'Bearer '+token 密文记录
    //需要验证为管理员

    params:
    {                           // 发送json参数
        value:                  // 浮点型，充值金额
        userId:                 // 用户id，充值用户的id
        info:                   // 备注信息（可选）
    }
    返回：
    {

        error:      // '0'则为操作成功

        mes:        // 操作后返回的信息
    }
-->

<!--
    修改用户密码API：
    method:POST
    url:'http://palerock.cn/h5_back/user/modify-psw'

    请求头:
    Authorization:'Bearer '+token 密文记录

    params:
    {                           // 发送json参数
        pswType:                  // 密码类型(整形)
                                        0:登录密码
                                        1:支付密码
        oldPsw:                   // 原密码
        newPsw:                   // 新密码
    }
    返回：
    {

        error:      // '0'则为操作成功

        mes:        // 操作后返回的信息
    }
-->

<!--
    获取用户账单API：
    method:GET
    url:'http://palerock.cn/h5_back/user/show-bills'

    请求头:
    Authorization:'Bearer '+token 密文记录

    params:
    {                           // 发送json参数
        无
    }
    返回：
    {
        dataList：   //账单信息列表
            {
                billAddTime：     // 账单生成时的时间戳
                billBalance：     // 账单生成后的余额
                billChangeType：  // 账单金额变动类型 -1为支出 1为收入
                billChangeValue： // 账单变动金额
                billId：          // 账单id
                billOrigin：      // 账单来源或用途
                billInfo：        // 账单备注
                userId：          // 账单绑定的用户id
            }
            ...

        error:      // '0'则为操作成功

        mes:        // 操作后返回的信息
    }
-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <title>AngularTest</title>
    <style>
        * {
            padding: 0;
            margin: 0;
            /*border: 0;*/
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
        }
    </style>
    <script src="../angular.js"></script>
    <script>

        var net = "http://palerock.cn/h5_back";
        //                var net = "http://localhost:8080";
        //读取本地缓存
        var token = localStorage.getItem("token");

        if (!token) {
            alert("您还没有登录");
            location.href = "登陆简单演示.html";
        }

        var app = angular.module('app', [])
                .config(function ($httpProvider) {
                    //设置请求头附带 token
                    $httpProvider.defaults.headers.common.Authorization = 'Bearer ' + token;
                });

        //自定义过滤器,负数为- 0或整数为+
        app.filter('PlusMinus',function(){
            return function(input){
                //input 就是我们要处理的数据
                return input<0?'-':'+';
            }
        });

        app.controller('info', function ($scope, $http) {

            //声明充值账单数据
            $scope.billData = {};

            //声明账单数组
            $scope.bills = [];

            //声明密码类型以及对应id
            $scope.pswTypes=[];
            $scope.pswTypes.push({
                pswTypeName:'选择密码类型',
            },{
                pswTypeName:'登录密码',
                pswTypeId:'0'
            },{
                pswTypeName:'支付密码',
                pswTypeId:'1'
            });

            //声明修改密码需要的参数对象
            $scope.paramForModifyPsw = {};

            $scope.checkBalance = function () {
                if (token) {
                    $http.get(net + '/user/show-balance').then(function (res) {
                        console.log(res);
                        if (!res.data.error) {
                            alert("你的余额为" + res.data.data.userBalance);
                        } else {
                            alert('错误代码：' + res.data.error + ' ' + res.data.mes);
                        }
                    }, function () {
                        alert('网络或设置错误');
                    })
                }
            };

            //用户充值
            $scope.recharge = function () {
                if (token) {
                    $scope.billData.userLoginPsw=prompt("请输入登录密码:");
                    $http({
                        url: net + '/user/recharge-balance',
                        method: 'post',
                        params: $scope.billData
                    }).then(function (res) {
                        console.log(res);
                        if (!res.data.error) {
                            alert(res.data.mes);
                            $scope.billData={};
                        } else {
                            alert('错误代码：' + res.data.error + ' ' + res.data.mes);
                        }
                    }, function () {
                        alert('网络或设置错误');
                    })
                }
            };

            //获取用户账单
            $scope.getUserBills = function () {
                if (token) {
                    $http({
                        url: net + '/user/show-bills',
                        method: 'get'
                    }).then(function (res) {
                        console.log(res);
                        if (!res.data.error) {
                            alert(res.data.mes);
                            $scope.bills = res.data.dataList;
                        } else {
                            alert('错误代码：' + res.data.error + ' ' + res.data.mes);
                        }
                    }, function () {
                        alert('网络或设置错误');
                    })
                }
            };

            //修改用户密码
            $scope.modifyPsw = function(){
                if (token) {
                    $http({
                        url: net + '/user/modify-psw',
                        method: 'post',
                        params: $scope.paramForModifyPsw
                    }).then(function (res) {
                        console.log(res);
                        if (!res.data.error) {
                            alert(res.data.mes);
                            $scope.paramForModifyPsw = {};
                        } else {
                            alert('错误代码：' + res.data.error + ' ' + res.data.mes);
                        }
                    }, function () {
                        alert('网络或设置错误');
                    })
                }
            };

            $scope.logout = function () {
                localStorage.removeItem("token");
                alert("您已注销成功");
                location.reload();
            }
        });
    </script>
</head>
<body ng-app="app">
<div ng-controller="info">
    <table>
        <tr>
            <td>
                <button ng-click="checkBalance()">显示余额</button>
            </td>
            <td>
                <button ng-click="logout()">注销</button>
            </td>
        </tr>
        <tr>
            <td>
                <input type="number" ng-model="billData.value" placeholder="充值金额"/>
                <input type="number" ng-model="billData.userId" placeholder="充值用户id"/><br/>
                <input type="text" ng-model="billData.info" placeholder="备注"/>
            </td>
            <td>
                <button ng-click="recharge()">确认充值</button>
            </td>
        </tr>
        <tr>
            <td>密码类型:
                <select ng-model="paramForModifyPsw.pswType" ng-options="x.pswTypeId as x.pswTypeName for x in pswTypes">>
                </select>
                <input type="password" ng-model="paramForModifyPsw.oldPsw" placeholder="原密码"/>
                <input type="password" ng-model="paramForModifyPsw.newPsw" placeholder="新密码"/>
            </td>
            <td>
                <button ng-click="modifyPsw()">确认修改密码</button>
            </td>
        </tr>
        <tr>
            <td>
                <button ng-click="getUserBills()">获取用户账单</button>
            </td>
        </tr>
        <tr ng-repeat="bill in bills">
            <td>
                <fieldset>
                    <legend align="center">{{bill.billAddTime | date:'yyyy-MM-dd HH:mm:ss'}}</legend>
                    账单id：{{bill.billId}}
                    <br/>
                    变动金额：{{bill.billChangeType | PlusMinus}}{{bill.billChangeValue}}
                    <br/>
                    来源或用途：{{bill.billOrigin}}
                    <br/>
                    余额：{{bill.billBalance}}
                    <br/>
                    备注：{{bill.billInfo}}
                </fieldset>
            </td>
        </tr>
    </table>
</div>

</body>
</html>